Page({
  data: {
    characters: [
      { id: 1, name: '角色1', image: 'images/角色1.jpg', hitokoto: '' },
      { id: 2, name: '角色2', image: 'images/角色2.jpg', hitokoto: '' },
      { id: 3, name: '角色3', image: 'images/角色3.jpg', hitokoto: '' },
      { id: 4, name: '角色4', image: 'images/角色4.jpg', hitokoto: '' },
      { id: 5, name: '角色5', image: 'images/角色5.jpg', hitokoto: '' },
      { id: 6, name: '角色6', image: 'images/角色6.jpg', hitokoto: '' }
    ],
    rotateX: 0,
    rotateY: 0
  },

  onLoad() {
    this.startDeviceMotion()
  },

  startDeviceMotion() {
    wx.startDeviceMotionListening({
      interval: 'game',
      success: () => {
        wx.onDeviceMotionChange((res) => {
          // 根据手机倾斜角度计算旋转角度
          const maxRotate = 15 // 最大旋转角度
          const rotateY = res.gamma * (maxRotate / 90) // gamma 是手机左右倾斜的角度
          const rotateX = res.beta * (maxRotate / 90) // beta 是手机前后倾斜的角度
          
          this.setData({
            rotateX: rotateX.toFixed(1),
            rotateY: rotateY.toFixed(1)
          })
        })
      },
      fail: (err) => {
        console.error('设备方向监听失败：', err)
      }
    })
  },

  onUnload() {
    wx.stopDeviceMotionListening()
  },

  imageError(e) {
    const index = e.currentTarget.dataset.index;
    console.error(`图片加载失败 - 索引: ${index}, 路径: ${this.data.characters[index].image}`);
  },

  showHitokoto(e) {
    const index = e.currentTarget.dataset.index;
    
    // 调用一言API
    wx.request({
      url: 'https://v1.hitokoto.cn',
      method: 'GET',
      success: (res) => {
        const hitokoto = res.data.hitokoto;
        
        // 显示弹窗
        wx.showModal({
          title: '一言',
          content: hitokoto,
          showCancel: true,
          cancelText: 'DISLIKE',
          confirmText: 'LIKE',
          success: (result) => {
            if (result.confirm) {
              // 用户点击LIKE
              this.handleLike(index, hitokoto);
            } else {
              // 用户点击DISLIKE，重新获取一言
              this.showHitokoto(e);
            }
          }
        });
      },
      fail: (err) => {
        wx.showToast({
          title: '获取失败，请重试',
          icon: 'none'
        });
      }
    });
  },

  handleLike(index, hitokoto) {
    // 更新对应卡片的文字
    const characters = [...this.data.characters];
    characters[index].hitokoto = hitokoto;
    
    this.setData({
      characters: characters
    });

    wx.showToast({
      title: '已收藏',
      icon: 'success'
    });
  }
}) 